import re
from re import fullmatch

# \d[0-9]  \w包含数字字母  \s转义字符
#\D非数字 \W非单词字符  \S非空白


# re.I 忽略大小写
# re.M 如果有换行，可以匹配每一行的开头和结尾
# re.S 让.也能匹配换行符
# s = 'hello\nworld'
# print(re.findall(r'h.*o', s))
# h.*o的意思是从h开始到o结束，贪婪搜索任意长度不能换行
# re.A 驱逐不是asc码的内容
# s = 'café_中文\n1\r23'
# print(re.findall(r'\s+', s,re.A))


# s1 =';123v456ccc123_d、、、'
# r1 = re.match(r'\W+',s1)
# print(r1)
# match 只匹配开头之后，如果开头就不符合，则直接返回为空

# s1 ='、、、'
# r2 = re.fullmatch(r'\W+',s1)
# print(r2)
# fullmatch 必须全部符合要求，否则为None

# s1 ='；4`8`45[[45dwa['
# r2 = re.subn(r'\W+','111',s1,count=2)
# print(r2,type(r2))

# sub 和subn都为替换字段 subn返回一个元组，为替换的新字符串和替换次数，源代码不变


# s1 =':4`8`45[[45dwa['
# r2 = re.split(r'\W+',s1)
# print(r2,type(r2))

# 类似于切割，被切割的不会出现在新的字符串